Various embodiments of the present invention relate to virtual machines (VMs), and more specifically, to a method and apparatus for managing a VM instance.
With the development of computer hardware/software technologies and network technology, virtual machines (VMs) are widely applied to various respects of people's work and life. By means of virtual machines, users no more have to purchase high-performance computer devices and expensive application resources (such as operating systems, middleware, middleware configurations, databases, applications, etc.), do not have to install and test computer devices, and do not have to engage technical professionals to install various needed application resources.
The user may request a virtual machine to a VM provider and specify resources, such as computing resources, storage resources and application resources, should be installed on the virtual machine. Subsequently, the VM provider may allocate specific computing resources and storage resources from a resource pool and install needed application resources one after another according to configuration requirements the user specifies.
Like the process of installing application resources on a physical machine, the VM provider also needs to install various application resources one after another, and since those application resources might contain a dependency relation between them, the VM provider should serially install those application resources one after another in an order of the dependency relation. As the installation process involves a couple of configurations, the installation process of each application resource costs a certain amount of time, and as a whole it takes a long time to generate a VM instance.
In order to reduce the wait time for users, there have been proposed technical solutions for provisioning in the resource pool VM instances that satisfy simple demands. However, these VM instances only have the most basic configurations, e.g., have a specific amount of CPU resources, memory resources and operating systems, which basic configurations do not satisfy ever-increasing special needs of massive users.
With the further complication of user needs, even if a VM instance having basic configurations has been obtained from the resource pool, it takes a long time to install on the VM instance various application resources that are specified by the user. At this point, how to manage the resource pool in a more efficient way now becomes a focus of attention.